//1. rust语言将错误分为两个类别：可恢复错误和不可恢复错误
//
//    1. 可恢复错误通常代表向用户报告错误和重试操作是合理的情况，例如未找到文件。rust中使用Result<T,E>来实现。
//    2. 不可恢复错误是bug的同义词，如尝试访问超过数组结尾的位置。rust中通过使用panic！来实现。
//
// 2. panic！
//
// 3. 使用BACKTRACE=1
//
// 4. Result<T,E>

use std::fs::File;

// 5. 简写
fn main() {

    let f = File::open("hello.txt");
    //错误处理
    let r = match f {
        Ok(file) => file,
        Err(err) => panic!("error:{:?}",err),
    };

    //错误处理，简写1
    let f = File::open("hello.txt").unwrap();
    //错误处理，简写2
    let f = File::open("hello.txt").expect("文件打开错误");

    panic!("crash here");
    println!("Hello, world!");
}
